@@ -88,8 +88,9 @@ group :development, :test do |
||
88 | 88 |
gem 'vcr' |
89 | 89 |
gem 'dotenv-rails' |
90 | 90 |
gem 'pry' |
91 |
- gem 'rspec-rails', '~> 2.14' |
|
92 |
- gem 'rspec', '~> 2.14' |
|
91 |
+ gem 'rspec-rails', '~> 2.99' |
|
92 |
+ gem 'rspec', '~> 2.99' |
|
93 |
+ gem 'rspec-collection_matchers' |
|
93 | 94 |
gem 'shoulda-matchers' |
94 | 95 |
gem 'rr' |
95 | 96 |
gem 'delorean' |
@@ -238,22 +238,25 @@ GEM |
||
238 | 238 |
mime-types (>= 1.16) |
239 | 239 |
retriable (1.4.1) |
240 | 240 |
rr (1.1.2) |
241 |
- rspec (2.14.1) |
|
242 |
- rspec-core (~> 2.14.0) |
|
243 |
- rspec-expectations (~> 2.14.0) |
|
244 |
- rspec-mocks (~> 2.14.0) |
|
245 |
- rspec-core (2.14.8) |
|
246 |
- rspec-expectations (2.14.5) |
|
241 |
+ rspec (2.99.0) |
|
242 |
+ rspec-core (~> 2.99.0) |
|
243 |
+ rspec-expectations (~> 2.99.0) |
|
244 |
+ rspec-mocks (~> 2.99.0) |
|
245 |
+ rspec-collection_matchers (1.0.0) |
|
246 |
+ rspec-expectations (>= 2.99.0.beta1) |
|
247 |
+ rspec-core (2.99.1) |
|
248 |
+ rspec-expectations (2.99.2) |
|
247 | 249 |
diff-lcs (>= 1.1.3, < 2.0) |
248 |
- rspec-mocks (2.14.6) |
|
249 |
- rspec-rails (2.14.2) |
|
250 |
+ rspec-mocks (2.99.2) |
|
251 |
+ rspec-rails (2.99.0) |
|
250 | 252 |
actionpack (>= 3.0) |
251 | 253 |
activemodel (>= 3.0) |
252 | 254 |
activesupport (>= 3.0) |
253 | 255 |
railties (>= 3.0) |
254 |
- rspec-core (~> 2.14.0) |
|
255 |
- rspec-expectations (~> 2.14.0) |
|
256 |
- rspec-mocks (~> 2.14.0) |
|
256 |
+ rspec-collection_matchers |
|
257 |
+ rspec-core (~> 2.99.0) |
|
258 |
+ rspec-expectations (~> 2.99.0) |
|
259 |
+ rspec-mocks (~> 2.99.0) |
|
257 | 260 |
rturk (2.12.1) |
258 | 261 |
erector |
259 | 262 |
nokogiri |
@@ -402,8 +405,9 @@ DEPENDENCIES |
||
402 | 405 |
rails (= 4.1.4) |
403 | 406 |
rails_12factor |
404 | 407 |
rr |
405 |
- rspec (~> 2.14) |
|
406 |
- rspec-rails (~> 2.14) |
|
408 |
+ rspec (~> 2.99) |
|
409 |
+ rspec-collection_matchers |
|
410 |
+ rspec-rails (~> 2.99) |
|
407 | 411 |
rturk (~> 2.12.1) |
408 | 412 |
ruby-growl (~> 4.1.0) |
409 | 413 |
rufus-scheduler (~> 3.0.8) |
@@ -14,7 +14,7 @@ describe AgentsController do |
||
14 | 14 |
it "only returns Agents for the current user" do |
15 | 15 |
sign_in users(:bob) |
16 | 16 |
get :index |
17 |
- assigns(:agents).all? {|i| i.user.should == users(:bob) }.should be_true |
|
17 |
+ assigns(:agents).all? {|i| i.user.should == users(:bob) }.should be_truthy |
|
18 | 18 |
end |
19 | 19 |
end |
20 | 20 |
|
@@ -10,14 +10,14 @@ describe EventsController do |
||
10 | 10 |
it "only returns Events created by Agents of the current user" do |
11 | 11 |
sign_in users(:bob) |
12 | 12 |
get :index |
13 |
- assigns(:events).all? {|i| i.user.should == users(:bob) }.should be_true |
|
13 |
+ assigns(:events).all? {|i| i.user.should == users(:bob) }.should be_truthy |
|
14 | 14 |
end |
15 | 15 |
|
16 | 16 |
it "can filter by Agent" do |
17 | 17 |
sign_in users(:bob) |
18 | 18 |
get :index, :agent_id => agents(:bob_website_agent) |
19 | 19 |
assigns(:events).length.should == agents(:bob_website_agent).events.length |
20 |
- assigns(:events).all? {|i| i.agent.should == agents(:bob_website_agent) }.should be_true |
|
20 |
+ assigns(:events).all? {|i| i.agent.should == agents(:bob_website_agent) }.should be_truthy |
|
21 | 21 |
|
22 | 22 |
lambda { |
23 | 23 |
get :index, :agent_id => agents(:jane_website_agent) |
@@ -6,7 +6,7 @@ describe LogsController do |
||
6 | 6 |
sign_in users(:bob) |
7 | 7 |
get :index, :agent_id => agents(:bob_weather_agent).id |
8 | 8 |
assigns(:logs).length.should == agents(:bob_weather_agent).logs.length |
9 |
- assigns(:logs).all? {|i| i.agent.should == agents(:bob_weather_agent) }.should be_true |
|
9 |
+ assigns(:logs).all? {|i| i.agent.should == agents(:bob_weather_agent) }.should be_truthy |
|
10 | 10 |
end |
11 | 11 |
|
12 | 12 |
it "only loads Agents owned by the current user" do |
@@ -12,7 +12,7 @@ describe ScenariosController do |
||
12 | 12 |
describe "GET index" do |
13 | 13 |
it "only returns Scenarios for the current user" do |
14 | 14 |
get :index |
15 |
- assigns(:scenarios).all? {|i| i.user.should == users(:bob) }.should be_true |
|
15 |
+ assigns(:scenarios).all? {|i| i.user.should == users(:bob) }.should be_truthy |
|
16 | 16 |
end |
17 | 17 |
end |
18 | 18 |
|
@@ -50,7 +50,7 @@ describe ScenariosController do |
||
50 | 50 |
assigns(:exporter).options[:description].should == scenarios(:bob_weather).description |
51 | 51 |
assigns(:exporter).options[:agents].should == scenarios(:bob_weather).agents |
52 | 52 |
assigns(:exporter).options[:guid].should == scenarios(:bob_weather).guid |
53 |
- assigns(:exporter).options[:source_url].should be_false |
|
53 |
+ assigns(:exporter).options[:source_url].should be_falsey |
|
54 | 54 |
response.headers['Content-Disposition'].should == 'attachment; filename="bob-s-weather-alert-scenario.json"' |
55 | 55 |
response.headers['Content-Type'].should == 'application/json; charset=utf-8' |
56 | 56 |
JSON.parse(response.body)["name"].should == scenarios(:bob_weather).name |
@@ -15,7 +15,7 @@ describe UserCredentialsController do |
||
15 | 15 |
describe "GET index" do |
16 | 16 |
it "only returns UserCredentials for the current user" do |
17 | 17 |
get :index |
18 |
- assigns(:user_credentials).all? {|i| i.user.should == users(:bob) }.should be_true |
|
18 |
+ assigns(:user_credentials).all? {|i| i.user.should == users(:bob) }.should be_truthy |
|
19 | 19 |
end |
20 | 20 |
end |
21 | 21 |
|
@@ -89,7 +89,7 @@ describe DotHelper do |
||
89 | 89 |
end |
90 | 90 |
end |
91 | 91 |
|
92 |
- describe DotHelper::DotDrawer do |
|
92 |
+ describe "DotHelper::DotDrawer" do |
|
93 | 93 |
describe "#id" do |
94 | 94 |
it "properly escapes double quotaion and backslash" do |
95 | 95 |
DotHelper::DotDrawer.draw(foo: "") { |
@@ -20,7 +20,7 @@ describe AgentsExporter do |
||
20 | 20 |
Time.parse(data[:exported_at]).should be_within(2).of(Time.now.utc) |
21 | 21 |
data[:links].should == [{ :source => 0, :receiver => 1 }] |
22 | 22 |
data[:agents].should == agent_list.map { |agent| exporter.agent_as_json(agent) } |
23 |
- data[:agents].all? { |agent_json| agent_json[:guid].present? && agent_json[:type].present? && agent_json[:name].present? }.should be_true |
|
23 |
+ data[:agents].all? { |agent_json| agent_json[:guid].present? && agent_json[:type].present? && agent_json[:name].present? }.should be_truthy |
|
24 | 24 |
|
25 | 25 |
data[:agents][0].should_not have_key(:propagate_immediately) # can't receive events |
26 | 26 |
data[:agents][1].should_not have_key(:schedule) # can't be scheduled |
@@ -213,7 +213,7 @@ describe Agent do |
||
213 | 213 |
@checker.last_check_at.should be_nil |
214 | 214 |
Agents::SomethingSource.async_check(@checker.id) |
215 | 215 |
@checker.reload.last_check_at.should be_within(2).of(Time.now) |
216 |
- @checker.reload.options[:new].should be_true # Show that we save options |
|
216 |
+ @checker.reload.options[:new].should be_truthy # Show that we save options |
|
217 | 217 |
end |
218 | 218 |
|
219 | 219 |
it "should log exceptions" do |
@@ -60,7 +60,7 @@ describe Agents::GrowlAgent do |
||
60 | 60 |
end |
61 | 61 |
|
62 | 62 |
@checker.register_growl |
63 |
- called.should be_true |
|
63 |
+ called.should be_truthy |
|
64 | 64 |
end |
65 | 65 |
end |
66 | 66 |
|
@@ -78,7 +78,7 @@ describe Agents::GrowlAgent do |
||
78 | 78 |
mock(obj).notify(@checker.options[:growl_notification_name],subject,message) |
79 | 79 |
end |
80 | 80 |
@checker.notify_growl(subject,message) |
81 |
- called.should be_true |
|
81 |
+ called.should be_truthy |
|
82 | 82 |
end |
83 | 83 |
end |
84 | 84 |
|
@@ -323,7 +323,7 @@ describe Agents::HumanTaskAgent do |
||
323 | 323 |
|
324 | 324 |
@checker.send :review_hits |
325 | 325 |
|
326 |
- assignments.all? {|a| a.approved == true }.should be_false |
|
326 |
+ assignments.all? {|a| a.approved == true }.should be_falsey |
|
327 | 327 |
@checker.memory['hits'].should == { "JH3132836336DHG" => { 'event_id' => @event.id } } |
328 | 328 |
end |
329 | 329 |
|
@@ -341,7 +341,7 @@ describe Agents::HumanTaskAgent do |
||
341 | 341 |
|
342 | 342 |
@checker.send :review_hits |
343 | 343 |
|
344 |
- assignments.all? {|a| a.approved == true }.should be_false |
|
344 |
+ assignments.all? {|a| a.approved == true }.should be_falsey |
|
345 | 345 |
@checker.memory['hits'].should == { "JH3132836336DHG" => { 'event_id' => @event.id } } |
346 | 346 |
end |
347 | 347 |
|
@@ -360,7 +360,7 @@ describe Agents::HumanTaskAgent do |
||
360 | 360 |
@checker.send :review_hits |
361 | 361 |
}.should change { Event.count }.by(1) |
362 | 362 |
|
363 |
- assignments.all? {|a| a.approved == true }.should be_true |
|
363 |
+ assignments.all? {|a| a.approved == true }.should be_truthy |
|
364 | 364 |
hit.should be_disposed |
365 | 365 |
|
366 | 366 |
@checker.events.last.payload['answers'].should == [ |
@@ -405,7 +405,7 @@ describe Agents::HumanTaskAgent do |
||
405 | 405 |
@checker.send :review_hits |
406 | 406 |
}.should change { Event.count }.by(1) |
407 | 407 |
|
408 |
- assignments.all? {|a| a.approved == true }.should be_true |
|
408 |
+ assignments.all? {|a| a.approved == true }.should be_truthy |
|
409 | 409 |
|
410 | 410 |
@checker.events.last.payload['answers'].should == [ |
411 | 411 |
{ 'sentiment' => "sad", 'age_range' => "<50" }, |
@@ -458,7 +458,7 @@ describe Agents::HumanTaskAgent do |
||
458 | 458 |
@checker.send :review_hits |
459 | 459 |
}.should change { Event.count }.by(1) |
460 | 460 |
|
461 |
- assignments.all? {|a| a.approved == true }.should be_true |
|
461 |
+ assignments.all? {|a| a.approved == true }.should be_truthy |
|
462 | 462 |
|
463 | 463 |
@checker.events.last.payload['answers'].should == [ |
464 | 464 |
{ 'rating' => "1" }, |
@@ -520,7 +520,7 @@ describe Agents::HumanTaskAgent do |
||
520 | 520 |
|
521 | 521 |
# it approves the existing assignments |
522 | 522 |
|
523 |
- assignments.all? {|a| a.approved == true }.should be_true |
|
523 |
+ assignments.all? {|a| a.approved == true }.should be_truthy |
|
524 | 524 |
hit.should be_disposed |
525 | 525 |
|
526 | 526 |
# it creates a new HIT for the poll |
@@ -582,7 +582,7 @@ describe Agents::HumanTaskAgent do |
||
582 | 582 |
|
583 | 583 |
# it approves the existing assignments |
584 | 584 |
|
585 |
- assignments.all? {|a| a.approved == true }.should be_true |
|
585 |
+ assignments.all? {|a| a.approved == true }.should be_truthy |
|
586 | 586 |
hit.should be_disposed |
587 | 587 |
|
588 | 588 |
@checker.memory['hits'].should be_empty |
@@ -53,7 +53,7 @@ describe Agents::WeiboPublishAgent do |
||
53 | 53 |
Agents::WeiboPublishAgent.async_receive(@checker.id, [event.id]) |
54 | 54 |
@sent_messages.count.should eq(1) |
55 | 55 |
@checker.events.count.should eq(1) |
56 |
- @sent_messages.first.include?("t.co").should_not be_true |
|
56 |
+ @sent_messages.first.include?("t.co").should_not be_truthy |
|
57 | 57 |
end |
58 | 58 |
end |
59 | 59 |
|
@@ -172,7 +172,7 @@ describe ScenarioImport do |
||
172 | 172 |
scenario_import.scenario.description.should == description |
173 | 173 |
scenario_import.scenario.guid.should == guid |
174 | 174 |
scenario_import.scenario.source_url.should == source_url |
175 |
- scenario_import.scenario.public.should be_false |
|
175 |
+ scenario_import.scenario.public.should be_falsey |
|
176 | 176 |
end |
177 | 177 |
|
178 | 178 |
it "creates the Agents" do |
@@ -186,7 +186,7 @@ describe ScenarioImport do |
||
186 | 186 |
weather_agent.name.should == "a weather agent" |
187 | 187 |
weather_agent.schedule.should == "5pm" |
188 | 188 |
weather_agent.keep_events_for.should == 14 |
189 |
- weather_agent.propagate_immediately.should be_false |
|
189 |
+ weather_agent.propagate_immediately.should be_falsey |
|
190 | 190 |
weather_agent.should be_disabled |
191 | 191 |
weather_agent.memory.should be_empty |
192 | 192 |
weather_agent.options.should == weather_agent_options |
@@ -195,7 +195,7 @@ describe ScenarioImport do |
||
195 | 195 |
trigger_agent.sources.should == [weather_agent] |
196 | 196 |
trigger_agent.schedule.should be_nil |
197 | 197 |
trigger_agent.keep_events_for.should == 0 |
198 |
- trigger_agent.propagate_immediately.should be_true |
|
198 |
+ trigger_agent.propagate_immediately.should be_truthy |
|
199 | 199 |
trigger_agent.should_not be_disabled |
200 | 200 |
trigger_agent.memory.should be_empty |
201 | 201 |
trigger_agent.options.should == trigger_agent_options |
@@ -272,7 +272,7 @@ describe ScenarioImport do |
||
272 | 272 |
existing_scenario.description.should == description |
273 | 273 |
existing_scenario.name.should == name |
274 | 274 |
existing_scenario.source_url.should == source_url |
275 |
- existing_scenario.public.should be_false |
|
275 |
+ existing_scenario.public.should be_falsey |
|
276 | 276 |
end |
277 | 277 |
|
278 | 278 |
it "updates any existing agents in the scenario, and makes new ones as needed" do |
@@ -290,7 +290,7 @@ describe ScenarioImport do |
||
290 | 290 |
weather_agent.name.should == "a weather agent" |
291 | 291 |
weather_agent.schedule.should == "5pm" |
292 | 292 |
weather_agent.keep_events_for.should == 14 |
293 |
- weather_agent.propagate_immediately.should be_false |
|
293 |
+ weather_agent.propagate_immediately.should be_falsey |
|
294 | 294 |
weather_agent.should be_disabled |
295 | 295 |
weather_agent.memory.should be_empty |
296 | 296 |
weather_agent.options.should == weather_agent_options |
@@ -299,7 +299,7 @@ describe ScenarioImport do |
||
299 | 299 |
trigger_agent.sources.should == [weather_agent] |
300 | 300 |
trigger_agent.schedule.should be_nil |
301 | 301 |
trigger_agent.keep_events_for.should == 0 |
302 |
- trigger_agent.propagate_immediately.should be_true |
|
302 |
+ trigger_agent.propagate_immediately.should be_truthy |
|
303 | 303 |
trigger_agent.should_not be_disabled |
304 | 304 |
trigger_agent.memory.should be_empty |
305 | 305 |
trigger_agent.options.should == trigger_agent_options |
@@ -318,7 +318,7 @@ describe ScenarioImport do |
||
318 | 318 |
|
319 | 319 |
scenario_import.should be_valid |
320 | 320 |
|
321 |
- scenario_import.import.should be_true |
|
321 |
+ scenario_import.import.should be_truthy |
|
322 | 322 |
|
323 | 323 |
weather_agent = existing_scenario.agents.find_by(:guid => "a-weather-agent") |
324 | 324 |
weather_agent.name.should == "updated name" |
@@ -338,7 +338,7 @@ describe ScenarioImport do |
||
338 | 338 |
} |
339 | 339 |
} |
340 | 340 |
|
341 |
- scenario_import.import.should be_false |
|
341 |
+ scenario_import.import.should be_falsey |
|
342 | 342 |
|
343 | 343 |
errors = scenario_import.errors.full_messages.to_sentence |
344 | 344 |
errors.should =~ /Name can't be blank/ |
@@ -32,6 +32,11 @@ RSpec.configure do |config| |
||
32 | 32 |
# instead of true. |
33 | 33 |
config.use_transactional_fixtures = true |
34 | 34 |
|
35 |
+ # rspec-rails 3 will no longer automatically infer an example group's spec type |
|
36 |
+ # from the file location. You can explicitly opt-in to this feature using this |
|
37 |
+ # snippet: |
|
38 |
+ config.infer_spec_type_from_file_location! |
|
39 |
+ |
|
35 | 40 |
# If true, the base class of anonymous controllers will be inferred |
36 | 41 |
# automatically. This will be the default behavior in future versions of |
37 | 42 |
# rspec-rails. |
@@ -7,23 +7,23 @@ shared_examples_for WorkingHelpers do |
||
7 | 7 |
|
8 | 8 |
agent.last_error_log_at = 10.minutes.ago |
9 | 9 |
agent.last_event_at = 10.minutes.ago |
10 |
- agent.recent_error_logs?.should be_true |
|
10 |
+ agent.recent_error_logs?.should be_truthy |
|
11 | 11 |
|
12 | 12 |
agent.last_error_log_at = 11.minutes.ago |
13 | 13 |
agent.last_event_at = 10.minutes.ago |
14 |
- agent.recent_error_logs?.should be_true |
|
14 |
+ agent.recent_error_logs?.should be_truthy |
|
15 | 15 |
|
16 | 16 |
agent.last_error_log_at = 5.minutes.ago |
17 | 17 |
agent.last_event_at = 10.minutes.ago |
18 |
- agent.recent_error_logs?.should be_true |
|
18 |
+ agent.recent_error_logs?.should be_truthy |
|
19 | 19 |
|
20 | 20 |
agent.last_error_log_at = 15.minutes.ago |
21 | 21 |
agent.last_event_at = 10.minutes.ago |
22 |
- agent.recent_error_logs?.should be_false |
|
22 |
+ agent.recent_error_logs?.should be_falsey |
|
23 | 23 |
|
24 | 24 |
agent.last_error_log_at = 2.days.ago |
25 | 25 |
agent.last_event_at = 10.minutes.ago |
26 |
- agent.recent_error_logs?.should be_false |
|
26 |
+ agent.recent_error_logs?.should be_falsey |
|
27 | 27 |
end |
28 | 28 |
end |
29 | 29 |
|